<?php
/**
 * Created by PhpStorm.
 * User: zhu_hbo
 * Date: 16/10/9
 * Time: 上午10:55
 */

/*
 * PHP 命名空间可以解决以下两类问题：
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名（或简短）的名称，提高源代码的可读性。
*/

//默认情况下，所有常量、类和函数名都放在全局空间下，就和PHP支持命名空间之前一样。
//命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间，它必须在其它所有代码之前声明命名空间
//namespace testnamespaced;


// 也可以在同一个文件中定义不同的命名空间代码
namespace testnamespaced1
{
    echo "I belong to namespace testnamespaced1";
}


/*
在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。
所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。
*/
//declare(encoding="UTF-8");
namespace testnamespaced2
{
    const  CONNECT_OK = 1;
    class Connection
    {
        function connect () {

        }
    }
}

namespace
{
//    session_start();
//    $a = testnamespaced2\connect();
//    echo  testnamespaced2\Connection::start();
}

?>